home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / NuBusPlugin.p < prev    next >
Text File  |  1996-05-01  |  2KB  |  106 lines

  1. {
  2.      File:        NuBusPlugin.p
  3.  
  4.      Contains:    I/O Interfaces for NuBus "bus plugins"
  5.  
  6.      Version:    Technology:    xxx Put version info here xxx
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT NuBusPlugin;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __NUBUSPLUGIN__}
  28. {$SETC __NUBUSPLUGIN__ := 1}
  29.  
  30. {$I+}
  31. {$SETC NuBusPluginIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __SLOTS__}
  38. {$I Slots.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __KERNEL__}
  41. {$I Kernel.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __INTERRUPTS__}
  44. {$I Interrupts.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __NAMEREGISTRY__}
  47. {$I NameRegistry.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __NUBUS__}
  50. {$I NuBus.p}
  51. {$ENDC}
  52.  
  53. {$PUSH}
  54. {$ALIGN MAC68K}
  55. {$LibExport+}
  56.  
  57. {$IFC FOR_SYSTEM8_PREEMPTIVE }
  58.  
  59. CONST
  60.     kNuBusMaxRegs                = 10;
  61.     kNuBusPluginNSlotMask        = $0000000F;
  62.     kNuBusPluginCanDisable        = $80000000;
  63.     kNuBusPluginCanMap            = $40000000;
  64.     kNuBusPluginVersion            = 0;
  65.  
  66.  
  67. TYPE
  68.     NuBusPluginInitProc = ProcPtr;  { FUNCTION NuBusPluginInitProc((CONST)VAR thisBus: RegEntryRef): OSStatus; C; }
  69.  
  70.     NuBusPluginFinalProc = ProcPtr;  { FUNCTION NuBusPluginFinalProc((CONST)VAR thisBus: RegEntryRef): OSStatus; C; }
  71.  
  72.     NuBusPluginHeaderPtr = ^NuBusPluginHeader;
  73.     NuBusPluginHeader = RECORD
  74.         version:                NumVersion;
  75.         attributes:                UInt32;
  76.         reserved1:                UInt32;
  77.         reserved2:                UInt32;
  78.     END;
  79.  
  80.     NuBusPluginDescriptorPtr = ^NuBusPluginDescriptor;
  81.     NuBusPluginDescriptor = RECORD
  82.         header:                    NuBusPluginHeader;
  83.         Initialize:                NuBusPluginInitProc;
  84.         Finalize:                NuBusPluginFinalProc;
  85.     END;
  86.  
  87. {
  88.  * NuBusMapSlot -
  89.  *
  90.  * The interface a NuBus "bus plugin" uses to communicate its
  91.  * slot addressing requirements to the NuBus family manager
  92.  *
  93. }
  94. FUNCTION NuBusMapSlot({CONST}VAR thisBus: RegEntryRef; VAR theseAddresses: PropertyReg; nAddresses: ByteCount; VAR resultSlots: RegEntryRef): OSStatus; C;
  95. {$ENDC}
  96. {$ALIGN RESET}
  97. {$POP}
  98.  
  99. {$SETC UsingIncludes := NuBusPluginIncludes}
  100.  
  101. {$ENDC} {__NUBUSPLUGIN__}
  102.  
  103. {$IFC NOT UsingIncludes}
  104.  END.
  105. {$ENDC}
  106.